Modern computing devices may include one or more input devices that allow users to enter text and other characters into the devices. A user may interact with one or more applications on a computing device to provide user input utilizing a user interface, e.g., a keyboard, mouse, touchpad, or the like.
In some cases, the computing device may utilize a keyboard user interface to receive input for text-based applications. Over the years, computing devices, especially mobile computing devices, have become significantly smaller, thus devoting a smaller area for user interfaces such as, for example, a keyboard.
Designers of modern computing devices have developed some data entry techniques that provide for auto-completion of entered text. Computing devices that support auto-completion provide a list of possible words based on a string of letters already keyed by the user. For example, the user may enter the letters “H O,” and the auto-completion functionality may provide the user with a list of words that begin with the letters “H O.” As the user types more characters, the auto-completion functionality may adjust the list of words based on the added letter, e.g., adding the letter “M” may adjust the list to words that begin with the letters “H O M.” Some computing devices may employ auto-completion techniques that account for the possibility of an erroneous key stroke. In the example above, for the sequence “H O,” the auto-completion functionality may provide the user with a list of words that begin with the letters “H O” in addition to words that begin with letters that are adjacent on the keyboard interface to the letters actually keyed by the user. In this example, other possible sequences may be “J O,” “G O,” “H I,” “G I,” “J I,” and so forth.